home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 4.iso / perfTuning / gldframes < prev    next >
Text File  |  1994-08-01  |  2KB  |  103 lines

  1. #! /bin/sh
  2.  
  3. ignoreset=""
  4. SEPERATEFILES=1;
  5. DEBUG=0;
  6.  
  7. while getopts sdI: c
  8. do
  9.     case $c in
  10.     I)    ignorefile=$OPTARG;
  11.         ignoreset='"'`cat $ignorefile`'"';
  12.         echo ignorefile=$ignorefile $ignoreset;;
  13.     s)    SEPERATEFILES=1;
  14.         echo seperatefiles=$SEPERATEFILES;;
  15.     d)    DEBUG=1;
  16.         echo debug=$DEBUG;;
  17.     esac
  18. done
  19. shift `expr $OPTIND - 1`
  20.  
  21. infile=$1
  22.  
  23. if test -f $infile
  24. then
  25.     echo infile=$infile
  26. else
  27.     echo "can't find infile="$infile
  28.     exit
  29. fi
  30.  
  31. sed 's/OUT/\&__tmpi__/g' $infile | 
  32. nawk '
  33.  
  34. function initfile(fname) {
  35.     printf "\n\n"                                     > fname;
  36. }
  37.  
  38. function initframe(framenum)
  39. {
  40.     if ( framenum == 0 ) {
  41.         if ( changefile == 1 ) {
  42.             currentfile = tname"_init";
  43.         }
  44.         initfile(currentfile);
  45.         filelist = filelist" "currentfile;
  46.         printf "/* %s_init */\n\n", tname                >> currentfile;
  47.     } else {
  48.         prevframe = framenum - 1;
  49.         printf "\n/* end frame %d */\n\n", prevframe        >> currentfile;
  50.         if ( changefile == 1 ) {
  51.             currentfile = tname"_frame"framenum;
  52.             initfile(currentfile);
  53.             filelist = filelist" "currentfile;
  54.         }
  55.         printf "/* %s_frame%d\n */\n\n",tname,framecount    >> currentfile;
  56.     }
  57. }
  58.  
  59.     BEGIN {
  60.  
  61.         FS = "(";              # seperates commands=$1 from args=$2
  62.         framecount = 0;
  63.         init = 0;
  64.         currentfile = tname;
  65.         filelist = "";
  66.     }
  67.     {
  68.         cmd = $1;
  69.  
  70.  
  71.         # dump out comments
  72.         if ( substr($1,1,2) == "/*" ) {
  73.             # printf "\t%s\n", $0 >> currentfile;
  74.             next;
  75.         }
  76.  
  77.         if ( init == 0 ) {
  78.             init = 1;
  79.             initframe(framecount);
  80.         }
  81.  
  82.         # check against ignore file
  83.         if ((cmd != "") && 
  84.             ((ignorefile == "") || 
  85.              ((system("fgrep -s" cmd " " ignorefile)) == 1 )))
  86.         {
  87.              print $0 >> currentfile;
  88.         }
  89.  
  90.         # set flags for new frame
  91.         if (cmd == "swapbuffers") {
  92.             framecount += 1;
  93.             init = 0;
  94.         }
  95.     }
  96.  
  97.     END {
  98.         # close last block
  99.         framecount = framecount - (1.0 - init);
  100.         printf "\n/* end frame %d */\n\n", framecount        >> currentfile;
  101.     }
  102.     ' tname=$1 changefile=$SEPERATEFILES debug=$DEBUG ignorefile=$ignorefile
  103.